Gin从入门到精通 您所在的位置:网站首页 go语言gin框架 入门到精通 Gin从入门到精通

Gin从入门到精通

2023-09-10 04:43| 来源: 网络整理| 查看: 265

一、前言

在上文的碎碎念中,我们开启了学习Gin框架以及Go语言的旅途。

在本文中,你将掌握

从0开始创建Go项目安装并引入GIn框架本地启动Gin项目二、正片1. 从0开始创建Go项目

项目使用的工具为VSCode并安装命令行启动工具。

我们首先创建项目文件夹,注意要在go路径下的src内。

(base) xiaoyu@localhost src % mkdir gin01 (base) xiaoyu@localhost src % cd gin01 (base) xiaoyu@localhost gin01 % code .

gin01为项目文件夹,我们将在这个文件下完成本文内容。

初始化go mod

(base) xiaoyu@localhost gin01 % go mod init go: creating new go.mod: module gin01

这一步很重要,如果你不初始化go mod ,那就会造成库的引入会出问题。

执行完成之后,项目根目录会生成go.mod文件。

module gin01 go 1.14

创建文件main.go作为项目入口,作为简单事例,我们只做输出文字。

package main import "fmt" func main() { fmt.Println("Hello, GO!2021!Fight!") }

main()一般作为项目的入口使用。

运行文件。go run main.go

(base) xiaoyu@localhost gin01 % go run main.go Hello, GO!2021!Fight!

构建文件。go build main.go

构建指的是生成二进制文件,二进制文件可以脱离go环境直接执行。

(base) xiaoyu@localhost gin01 % ./main Hello, GO!2021!Fight!2. 安装并引入GIn框架

我们使用go get命令安装框架,安装完成的框架会被放在pkg内。

(base) xiaoyu@localhost gin01 % go get -u github.com/gin-gonic/gin go: downloading github.com/gin-gonic/gin v1.7.4 go: github.com/gin-gonic/gin upgrade => v1.7.4 go: downloading github.com/gin-contrib/sse v0.1.0 go: downloading github.com/golang/protobuf v1.3.3 go: downloading github.com/mattn/go-isatty v0.0.12 go: downloading github.com/go-playground/validator/v10 v10.4.1 go: downloading github.com/ugorji/go v1.1.7 go: downloading github.com/ugorji/go/codec v1.1.7 go: downloading golang.org/x/sys v0.0.0-20200116001909-b77594299b42 go: downloading github.com/go-playground/universal-translator v0.17.0 go: downloading github.com/leodido/go-urn v1.2.0 go: downloading golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 go: downloading github.com/go-playground/locales v0.13.0 go: github.com/golang/protobuf upgrade => v1.5.2 go: golang.org/x/sys upgrade => v0.0.0-20210923061019-b8560ed6a9b7 go: github.com/go-playground/validator/v10 upgrade => v10.9.0 go: github.com/json-iterator/go upgrade => v1.1.12 go: gopkg.in/yaml.v2 upgrade => v2.4.0 go: github.com/modern-go/reflect2 upgrade => v1.0.2 go: github.com/leodido/go-urn upgrade => v1.2.1 go: github.com/ugorji/go/codec upgrade => v1.2.6 go: github.com/go-playground/locales upgrade => v0.14.0 go: github.com/modern-go/concurrent upgrade => v0.0.0-20180306012644-bacd9c7ef1dd go: github.com/go-playground/universal-translator upgrade => v0.18.0 go: github.com/mattn/go-isatty upgrade => v0.0.14 go: golang.org/x/crypto upgrade => v0.0.0-20210921155107-089bfa567519 go: downloading github.com/golang/protobuf v1.5.2 go: downloading github.com/json-iterator/go v1.1.12 go: downloading github.com/ugorji/go v1.2.6 go: downloading github.com/mattn/go-isatty v0.0.14 go: downloading github.com/go-playground/validator/v10 v10.9.0 go: downloading github.com/ugorji/go/codec v1.2.6 go: downloading golang.org/x/sys v0.0.0-20210923061019-b8560ed6a9b7 go: downloading google.golang.org/protobuf v1.26.0 go: downloading github.com/leodido/go-urn v1.2.1 go: downloading github.com/go-playground/universal-translator v0.18.0 go: downloading github.com/modern-go/reflect2 v1.0.2 go: downloading golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 go: downloading golang.org/x/text v0.3.6 go: downloading github.com/go-playground/locales v0.14.0 go: google.golang.org/protobuf upgrade => v1.27.1 go: golang.org/x/text upgrade => v0.3.7 go: downloading golang.org/x/text v0.3.7 go: downloading google.golang.org/protobuf v1.27.1

image

我们在本地安装完成之后,就可以在main.go文件中引入Gin了。

import "github.com/gin-gonic/gin"

初始源码如下

package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() //创建gin r.GET("/", index) //绑定路由 r.Run(":8001") //运行绑定端口 } func index(c *gin.Context) { c.JSON(200, gin.H{ "message": "go!go!go!", }) }

我在代码中做了简要的注释,并且整个结构非常简洁。

学习中思考,思考中学习。

如果你学习过PHP语言的框架,那你就很清楚,一个框架的文件夹结构,是有官方规范的。

下图是PHP语言框架Yii2的官方项目结构,我们实际项目中也是这么用的,就算是改进也是在这个基础上的。

image

然而Gin显然并没有类似的结构。

后续我们将讨论这一话题。(留坑)

3. 本地启动Gin项目

和简单项目一致,我们也使用run本地运行Gin项目。

(base) xiaoyu@localhost gin01 % go run main.go [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached. [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] GET / --> main.index (3 handlers) [GIN-debug] Listening and serving HTTP on :8001

本地浏览器访问http://localhost:8001/

image

到此,我们就完成了Gin从安装到运行的全部流程。

三、总结go mod init很重要,是引入库的基础多思考多想问题,能提高学习效率

留了个项目文件夹的坑,后续完成!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有